package com.wang.myreflect;

/**
 * 获取 Class 对象
 * @author yandong
 */
public class MyReflectDemo1 {
    public static void main(String[] args) throws Exception {
        /*
         * 获取Class对象的三种方式 (三种方式都用来获取字节码文件对象 即class对象)
         * 1. Class.forName("全类名") --> 最为常用
         * 2. 类名.class --> 更多的是当做参数进行传递
         * 3. 对象.getClass() --> 当已经有了某类的对象时,才使用此方式
         */
        // 方式一:
        Class clazz1 = Class.forName("com.wang.myreflect.Student");
        System.out.println(clazz1);

        // 方式二:
        Class clazz2 = Student.class;
        System.out.println(clazz2);

        // 方式三:
        Student student = new Student();
        Class clazz3 = student.getClass();
        System.out.println(clazz3);

        System.out.println("===========================");

        // 比较三种方式获取到的class对象是否相同
        System.out.println(clazz1 == clazz2);
        System.out.println(clazz1 == clazz3);
        System.out.println(clazz2 == clazz3);

        // 最终打印结果都是true, 表示这三种方式获取到的class对象都是一样的.
    }
}
